<?php
/*
===============================================================================
	Controla las funciones nesesarias para que el catalogo de alumnos pueda
	consultar, insertar , modificar y eliminar registros.
===============================================================================
 */
class Alumnos extends CI_Controller
{
	const TITULO = 'Alumnos';

	/*
	====================
	Index

	Carga todos los registros de alumnos.
	Establece la configuracion de paginacion.
	====================
	*/
	function Index()
	{
		$datos['contenido']      = 'Alumnos_View';
		$datos['titulo']         = self::TITULO;
		$datos['registros']      = $this->Alumnos_Model->ObtenerTodos();
		//Config Paginacion
		$config['total_rows'] 	 = $this->Alumnos_Model->ContarRegistros();
		$config['base_url'] 	 = site_url("Alumnos/Index");
		$config['per_page'] 	 = $this->Alumnos_Model->ALUMNOS_POR_PAGINA;
		$config['num_links'] 	 = 15;
		$this->pagination->initialize( $config );
		$this->load->view( '/includes/template' , $datos );
	}

	/*
	====================
	BuscarAlumno

	Carga los registros con segun el tipo de busqueda especificada y la cadena de texto introducida
	====================
	*/
	function BuscarAlumno()
	{
		$datos['contenido'] = 'Alumnos_View';
		$datos['titulo']         = self::TITULO;
		$tipo	= $this->input->post('tipoBusqueda');
		$texto  = $this->input->post('filtro');
		if ( $tipo != '' && $texto != '' ) {
			switch ($tipo) {
				case 'matricula':
					$datos['registros'] = $this->Alumnos_Model->BuscarPorMatricula($texto);
					break;
				case 'alumno':
					$datos['registros'] = $this->Alumnos_Model->BuscarPorAlumno(strtoupper($texto));
					break;
				default:
					break;
			}
		} else {
			$this->session->set_flashdata('aviso','FALSE');
			$this->session->set_flashdata('avisoText','Ambos campos de busqueda son requeridos(tipoBusqueda/Texto)');
			redirect('Alumnos');
		}
			//Config Paginacion
			$config['total_rows'] 	 = COUNT($datos['registros']);
			$config['base_url'] 	 = site_url("Alumnos/Index");
			$config['per_page'] 	 = 25;
			$config['num_links'] 	 = 15;
			$this->pagination->initialize( $config );
			$this->load->view( '/includes/template' , $datos );
	}

	/*
	====================
	AgregarAlumno

	Captura los valores introducidos en el formulario, y forma un arreglo con los valores.
	Este se manda a guardar, se establece un aviso al usuario dependiendo de la respuesta.
	(Exito / Error)
	====================
	*/
	function AgregarAlumno()
	{
		$datosAlumnos = array(
				'matricula' => $this->input->post('matricula'),
				'alumno'    => strtoupper(utf8_encode($this->input->post('alumno')))
				);
		$exitoso = $this->Alumnos_Model->AgregarRegistrosAlumnos($datosAlumnos);
		if ( $exitoso ) {
			$this->session->set_flashdata('aviso','TRUE');
			$this->session->set_flashdata('avisoText','Registro guardado.');
		}else{
			$this->session->set_flashdata('aviso','FALSE');
			$this->session->set_flashdata('avisoText','Favor de intentar de nuevo sin ningun campo vacio.');
		}
		redirect('Alumnos');
	}

	/*
	====================
	ActualizarAlumno

	Toma los 2 parametros nesesarios, verfica que contengan algun valor,
	convierte el nombre de alumno a mayusculas y manda a actualizar.
	Establece una aviso, si es exitoso.
	====================
	*/
	function ActualizarAlumno()
	{
		$matricula = $this->input->post('matricula');
		$alumno    = $this->input->post('alumno');
		if ( $alumno != '' && isset($matricula)) {
			$this->Alumnos_Model->ActualizarRegistroAlumno( $matricula , strtoupper(utf8_encode($alumno)) );
			$this->session->set_flashdata('aviso', 'TRUE');
			$this->session->set_flashdata('avisoText','Registro actualizado.');
			redirect('Alumnos');
		} else {
			$this->session->set_flashdata('aviso', 'FALSE');
			$this->session->set_flashdata('avisoText','Favor de intentar de nuevo sin ningun campo vacio.');
			redirect('Alumnos');
		}
	}

	/*
	====================
	EliminarAlumno

	Toma el tercer segmento del uri, debido a que la imagen direcciona y manda la matricula por GET.
	Ejemplo http://example.com/index.php/primer/segundo/tercer/
	Con la matricula como identificador, manda el registro ese a eliminar de la BD.
	====================
	*/
	function EliminarAlumno()
	{
		$matricula = $this->uri->segment(3);
		$res = $this->Alumnos_Model->EliminarRegistro($matricula);
		if( $res == 1 ){
			$this->session->set_flashdata('aviso', 'TRUE');
			$this->session->set_flashdata('avisoText', 'Registro Eliminado');
		}else{
			$this->session->set_flashdata('aviso', 'FALSE');
			$this->session->set_flashdata('avisoText', 'Es posible que el registro ya no exista.');
		}
		redirect('Alumnos');
	}
}
?>